home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d2 / tame230.arc / TAME.DOC < prev    next >
Encoding:
Text File  |  1990-05-03  |  46.6 KB  |  1,255 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.                                     Tame
  14.                                 Release 2.3
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.             Copyright 1988-1990 by PowerSoft and David G. Thomas
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.                              Table of Contents
  73.  
  74. Tame Users Guide .................................................. 1
  75.    Abstract ....................................................... 1
  76.    Copyright ...................................................... 1
  77.    Applications that definitely NEED Tame ......................... 2
  78.    Finding more applications that need Tame ....................... 2
  79.    Running Tame ................................................... 3
  80.    If your program runs slower with Tame .......................... 4
  81.    Placing Tame in a batch file ................................... 4
  82.    Using Tame with other multi-taskers ............................ 4
  83.    Advanced Tame Concepts ......................................... 5
  84.    Setting the Frequency value .................................... 6
  85.    The Tame Status ................................................ 7
  86.  
  87. Tame Command Reference ............................................ 9
  88.    Task switching options ......................................... 9
  89.    Fine tuning for an Application ................................. 10
  90.    Other options .................................................. 13
  91.  
  92. Multi-tasking Specifics ........................................... 15
  93.    DESQview ....................................................... 15
  94.    Double Dos ..................................................... 15
  95.    Omniview ....................................................... 15
  96.    Topview ........................................................ 15
  97.    VM/386 ......................................................... 15
  98.    Windows/386 .................................................... 15
  99.  
  100. Application Specifics ............................................. 16
  101.  
  102. Tame Upgrades ..................................................... 17
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.                               Tame Users Guide
  139.  
  140.                                 Release 2.3
  141.                    Copyright 1988,1989,1990 by PowerSoft
  142.                             and David G. Thomas
  143.  
  144. Abstract
  145. If you run  in a multi-tasking environment  such as DESQview, you  may have
  146. noticed that some programs  really slow down the whole system,  even though
  147. they seem to  be doing nothing  except waiting for  you to type  something.
  148. When I first encountered this type of program, I accepted it as part of the
  149. price that is paid for multi-tasking.  The Tame program proves that this is
  150. not the  case.  In  fact, the  Tame program  will significantly reduce  the
  151. overhead of many  programs, without hindering  their performance when  they
  152. really are working.
  153.  
  154. Tame is designed to work with any DOS  based multi-tasking environment, and
  155. it contains special  hooks for use in  DESQview, Double Dos,  Omniview, and
  156. VM/386.  It has also  been used successfully with Windows/386.  If  you use
  157. Tame with another multi-tasker, please let me know whether or not it helps.
  158.  
  159. Copyright
  160. This program is  copyrighted material.  It  may be freely distributed.   If
  161. you use  Tame  to speed  up  your applications,  please  contribute to  the
  162. author.  If you  send $20 or more,   you will receive a registered  copy of
  163. the latest version of the program, and also a printed  manual.  If you have
  164. any  questions  or  comments, I  may  be  reached  at  the  PowerSoft  BBS,
  165. (404) 928-9294.  Contributions should be mailed to the following address.
  166.  
  167. David G. Thomas
  168. c/o PowerSoft
  169. P.O. Box  956338
  170. Duluth, GA 30136
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194. ---------------------------------------------------------------------------
  195. Release 2.3                     May 3, 1990                          Page 1
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. Applications that definitely NEED Tame                     Tame Users Guide
  203. ---------------------------------------------------------------------------
  204.  
  205. Applications that definitely NEED Tame
  206.  
  207. The following applications will continually poll the  keyboard, waiting for
  208. you to  press a  key.   Tame has been  proven to  significantly reduce  the
  209. overhead on  all these  applications.   For each  application listed  here,
  210. there are probably 100 more that need Tame!
  211. See the end of this document for special options that may be desirable with
  212. these programs.
  213.  
  214. Brief, by solution Systems
  215. EM4105
  216. Epsilon
  217. Harvard Graphics
  218. Kedit, by Mansfield Computing
  219. Lucid 3D, by PCSG
  220. Lotus 123, by Lotus Development Corp.
  221. Lotus Agenda, by Lotus Development Corp.
  222. Lotus Manuscript, by Lotus Development Corp.
  223. Microsoft editor, by Microsoft
  224. Norton Commander, by Peter Norton Computing
  225. PCBOARD, by Clark Development Company, Inc.
  226. Plan Perfect by Word Perfect Corp.
  227. Sidetalk, by Lattice
  228. Telix by Exis Inc.
  229. Tornado Notes by Micro Logic Corp
  230. Wildcat BBS Systems
  231. Word Perfect, by Word Perfect Corp.
  232. Word Perfect File Manager
  233. ZCOMM, by Omen Technology
  234.  
  235. Finding more applications that need Tame
  236. Any program  that uses CPU  cycles looking for  keyboard input needs  Tame.
  237. The best way to  see if a program does this  is to run a simple test.   You
  238. should test all  your favorite programs that  you spend time  entering data
  239. with.   This  includes  programs  such as  word  processors,  spreadsheets,
  240. editors, and DOS shells.
  241.  
  242. One way to see if a  program needs tame is to use Tame to  run the program,
  243. and see what happens.    You may evaluate whether or not  Tame is effective
  244. by looking at  statistics generated with the  Tame command, or you  may use
  245. one of the many standard CPU benchmarks to test its effectiveness.
  246. To test  a  program with  Tame, be  sure  you are  in  DESQview or  another
  247. supported multi-tasking system, and type the following command line.
  248.  
  249.    TAME-RES
  250. Now, run your  program, and work  in the program  for a little while,  then
  251. exit normally.  Type the following command line to obtain a summary of Tame
  252. activity.
  253.  
  254.    TAME /STATUS
  255.  
  256.  
  257.  
  258.  
  259.  
  260. ---------------------------------------------------------------------------
  261. Page 2                          May 3, 1990                     Release 2.3
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. Tame Users Guide                                               Running Tame
  269. ---------------------------------------------------------------------------
  270.  
  271. The displayed totals include the number of keyboard  polls that the program
  272. performed.  If this number small or zero, then Tame  may not be needed with
  273. the application.  With some extremely keyboard-hungry  programs, the number
  274. of keyboard polls can number into the thousands.
  275.  
  276. A second, and more direct  way to test the effectiveness of Tame  is to run
  277. the application without Tame, and simultaneously run tame  with the /Geiger
  278. option in another task.  This is done with the following commands.
  279.    TAME-RES
  280.    TAME /GEIGER
  281.  
  282. You will hear ticks that indicate how loaded the CPU is.  If the ticks slow
  283. considerably when you are in  the application, it probably needs Tame.   If
  284. this is  the case, run  TAME-RES, and  re-run the  application.  The  ticks
  285. probably do not slow nearly as much as before.   This is because Tame keeps
  286. your background tasks running at nearly full speed, at  least while you are
  287. not actively needing the CPU.
  288. If you  don't trust the  Geiger counter that  is built  into Tame (you  may
  289. think that I  have "loaded the dice"),  try a more standard  CPU benchmark,
  290. such as Norton's System Information (SI) program.  To do this, load Tame in
  291. one task,  then execute your  program in that  same task.   Wait until  the
  292. application is idle, and waiting  for keyboard input.  Your program  is now
  293. being Tamed.   Now, switch to another  task and run the  benchmark program.
  294. Try this again without Taming  the first program (Either type TAME  /OFF or
  295. TAME /Uninstall).  If the  benchmark indicates that the CPU is  faster with
  296. Tame, then you know it  is helping.    Also, experiment  with which program
  297. is in the foreground  and which is in  the background.  This  experiment is
  298. necessary if you have set  the DESQview background task priority to  a very
  299. low number.  In any event, it is informative, since it indicates the amount
  300. of processing time  that the background  can get while  you are using  that
  301. application.
  302.  
  303. Running Tame
  304.  
  305. Tame is  composed  of a  resident  (TSR) program,  and  also a  controlling
  306. program.  The  resident portion of Tame  must be loaded before  running the
  307. main Tame program.  This  is done with the TAME-RES command.   For example,
  308. the following command lines will run Lotus 123 with Tame active.
  309.    TAME-RES
  310.    LOTUS
  311.  
  312. If you always want Tame  to be used, you may create a  batch file (possibly
  313. named RUNLOTUS.BAT), with the following command lines.
  314.    TAME-RES
  315.    LOTUS
  316.  
  317. A general  purpose variation of  this batch  file comes  with Tame, and  is
  318. named TAME-RUN.BAT.  Using the batch file, the  following command line will
  319. do the same thing as the previous examples.
  320.    TAME-RUN LOTUS
  321.  
  322.  
  323.  
  324.  
  325.  
  326. ---------------------------------------------------------------------------
  327. Release 2.3                     May 3, 1990                          Page 3
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. If your program runs slower with Tame                      Tame Users Guide
  335. ---------------------------------------------------------------------------
  336.  
  337. If you normally execute  the program with the DESQview "Open  Window" menu,
  338. you will need to modify the definition of the window.   To do this, use the
  339. "CP" (for Change Program) option of the "Open Window"  menu, and change the
  340. Program to TAME-RUN (or your custom batch file) and add what was previously
  341. the Program to the beginning of the command line parameters.
  342.  
  343. If your program runs slower with Tame
  344.  
  345. In some cases, the program may initially run slower (or "feel" choppy) with
  346. Tame installed.  This is frequently corrected by a few steps that will tune
  347. Tame  for the  application.    First,  try specifying  the  /Max  parameter
  348. (described below) to increase the number of polls allowed before Tame tries
  349. to switch  tasks.   A  good value  to try  is  /MAX:32,3.   In some  cases,
  350. changing /Max will have little effect if /KeyIdle is  also specified.  This
  351. is the case  with most well-behaved programs  that issue the  keyboard idle
  352. interrupt.
  353. If the program prints very  slowly, try the /PARallel option.   This allows
  354. Tame to watch the  parallel port, and will  not invoke a task  switch while
  355. the port is being used.  For example, the following command lines should be
  356. used to run Word Perfect.
  357.  
  358.    TAME-RES
  359.    TAME /PARALLEL
  360.    WP
  361.  
  362. Placing Tame in a batch file
  363. If you run your application with a batch file, you may  like to add Tame to
  364. that batch file.  The only problem here is the fact that different programs
  365. like different Tame options, and also some programs will run other programs
  366. using  a DOS  Shell.    Tame has  special  options  for dealing  with  this
  367. situation.  The following batch  file will run Lotus 123, and  will restore
  368. the original Tame parameters before exiting.
  369.  
  370.    :* It is assumed that TAME-RES
  371.    :* has already been loaded
  372.    :*
  373.    TAME /GETALL:TAME_123 /ON /MAX:3,0
  374.    123
  375.    TAME %TAME_123%
  376.    SET TAME_123=
  377.  
  378. Using Tame with other multi-taskers
  379. Tame has special  hooks to work  very effectively with DESQview,  Omniview,
  380. VM/386, Double Dos  and Topview compatibles.   Tame may be used  with other
  381. multi-tasking environments, but may  not be quite as effective.   Also, you
  382. may need to include a  command line option to specify the method  that Tame
  383. should use to  give idle time  to the other  tasks.  The /KeySwitch  method
  384. will be effective with programs that are polling the  keyboard, and are not
  385. polling any other devices.  It may not be compatible with some applications
  386. such as communications programs.  The /HaltSwitch option is compatible with
  387. most programs, but may  not be effective, depending upon  the multi-tasking
  388.  
  389.  
  390.  
  391.  
  392. ---------------------------------------------------------------------------
  393. Page 4                          May 3, 1990                     Release 2.3
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. Tame Users Guide                                     Advanced Tame Concepts
  401. ---------------------------------------------------------------------------
  402.  
  403. software being used.   In either  case, run Tame  as normal, and Tame  will
  404. default to the  /HaltSwitch task switching  option.  The following  command
  405. will run Lotus 123 in a non-DESQview environment.
  406.  
  407.    TAME-RES
  408.    LOTUS
  409. If you use a multi-tasker that Tame is not effective with, I would like you
  410. to contact me.  I need to know some technical  data regarding how to detect
  411. and control the multi-tasker.  If it is feasible, I will add direct support
  412. for that multi-tasker to the Tame product.
  413.  
  414. Advanced Tame Concepts
  415.  
  416. Tame works by detecting when a program is continually polling the keyboard,
  417. and does its best to allow the multi-tasking software  to switch to another
  418. task.     It  detects  that a  program  is  polling the  keyboard  after  3
  419. successive keyboard polls  that occur within 1/18  of a second,  and during
  420. that time,  the program  does not  write  to the  screen or  issue any  DOS
  421. requests.   When the application  polls the  keyboard a fourth  consecutive
  422. time, Tame  checks one  last time for  a key-press,  and if  a key was  not
  423. pressed, it tries to switch the task.
  424. This threshold  may  be increased  or  decreased using  the  /FREQUENCY:n,m
  425. option, where n is the main threshold.  The n  parameter specifies how many
  426. consecutive polls  that may occur  in a  single PC  clock tick before  Tame
  427. switches tasks.   There  are 18.2  clock ticks  per second,  so the  "true"
  428. frequency is actually  18.2 times the value  of n.  If  n is too  low, then
  429. Tame will switch tasks while  the application really is working.  If  it is
  430. too high then Tame may never switch tasks.  Unfortunately, a "one size fits
  431. all" value of n is  not possible, since it depends largely on  the speed of
  432. the machine, as well as the software that is being used.
  433.  
  434. A reasonable value for n will be computed by Tame if you specify /Frequency
  435. with no parameters.  This  is done using a very crude formula  based on the
  436. speed of the CPU.  Since the CPU speed measurement  can take a few seconds,
  437. it is recommended that  this feature be used  only one time, and  an actual
  438. value is specified on subsequent runs.
  439. The /FREQUENCY  option restricts the  time period that  Tame is allowed  to
  440. count keyboard polls.  This allows Tame to measure the  amount of real work
  441. that  the application  is  doing,  where  more  polls per  clock  tick  are
  442. associated with less actual work being done by the application.
  443.  
  444. In some  instances, it  may not  be appropriate  to watch  the clock  while
  445. accumulating keyboard polls.   This is the  method that Tame used  prior to
  446. release 2.2, and is very  effective in many instances.  It also  happens to
  447. be much more easily tuned,  since the values do not normally depend  on the
  448. speed of  the machine.   This may  be done  by specifying /MAX:n,m  option,
  449. where n is the main threshold.   If n or m is much too low,  then Tame will
  450. switch tasks while the  application really is working.   If it is  too high
  451. then Tame will  not switch tasks until  long after the program  has settled
  452. into a  polling pattern,  reducing the  effectiveness of Tame  for a  brief
  453. period after  each key  is pressed.   Since  most programs  are capable  of
  454. polling 100 to 300 times per second, these parameters indirectly correspond
  455. to an "idle time limit" that is enforced by Tame.
  456.  
  457.  
  458. ---------------------------------------------------------------------------
  459. Release 2.3                     May 3, 1990                          Page 5
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. Setting the Frequency value                                Tame Users Guide
  467. ---------------------------------------------------------------------------
  468.  
  469. After Tame detects excessive keyboard polling, a second  threshold is used.
  470. This threshold  is normally much  smaller than  the initial threshold,  and
  471. defaults to 2.  In effect, Tame will allow 3  keyboard polls, switch tasks,
  472. and then switch tasks on  every third successive keyboard poll until  a key
  473. is pressed, or the program does something besides poll  the keyboard.  This
  474. allows the first  threshold to be  raised to a  high number to  accommodate
  475. some programs, without significantly sacrificing the effectiveness of Tame.
  476. In most cases, the default of 2 for the second  threshold is adequate, abut
  477. it can be  lowered all the way  to zero if desired.   It may be  changed by
  478. specifying a second parameter of the /Max or /Frequency option.
  479.  
  480. Some applications  will grab the  timer interrupt  that always occurs  18.2
  481. times per second.  In many cases, this interrupt takes  a lot of processing
  482. time, but really provides very little utility.  To avoid wasting processing
  483. time servicing the  timer interrupt, you  may prevent the application  from
  484. controlling the timer interrupt by specifying the /NOTIMER option.  In many
  485. cases, the  timer interrupt  may be  used to keep  a clock  running on  the
  486. screen.   This clock may  not be worth  much to you  when you consider  the
  487. amount of  processing time it  uses.  For  example, the following  commands
  488. will run the Brief  editor, (as long as  the auto-save feature of  Brief is
  489. disabled),   and  will gain  a  significant amount  of  processor time  for
  490. background processes.
  491.    TAME-RES
  492.    TAME /NOTIMER
  493.    B
  494.  
  495. Some applications spend  a lot of time  polling the system  clock, normally
  496. for the purpose  of an maintaining an  on-screen clock while it  is waiting
  497. for  other devices  to  have  a  character  ready.   The  /TIMEPOLL  option
  498. instructs Tame to treat the date and time query in  a manner similar to the
  499. keyboard poll,  and yield  the  time slice  after successive  date or  time
  500. queries.   The following  commands run  PCBOARD, which  keeps an  on-screen
  501. clock while waiting for the communications port.
  502.    TAME-RES
  503.    TAME /TIMEPOLL
  504.    PCBOARD
  505.  
  506. Most applications  will also  benefit  by specifying  /NoBackGround.   This
  507. option  is only  available  with DESQview,  and  should  not be  used  with
  508. communications programs.  When this  option is set, Tame will set  the task
  509. to not run in the background when it is polling.  This will completely shut
  510. down the  task until  it is  brought into the  foreground.   When the  task
  511. becomes active again, Tame will restore the task status,  to again allow it
  512. to run  in the  background.   This  automatic mode  switching is  extremely
  513. effective with most application programs.
  514.  
  515. Setting the Frequency value
  516. Tame will  compute a  nominal value  for the frequency  threshold when  you
  517. specify /Frequency with  no parameters.   This is done  using a very  crude
  518. formula based  primarily on  the speed  of the CPU.   In  many cases,  this
  519. number is  adequate.  However,  when computing this  number, Tame does  not
  520.  
  521.  
  522.  
  523.  
  524. ---------------------------------------------------------------------------
  525. Page 6                          May 3, 1990                     Release 2.3
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. Tame Users Guide                                            The Tame Status
  533. ---------------------------------------------------------------------------
  534.  
  535. factor in any  special characteristics of  a specific application  program.
  536. To tune the  frequency for a  specific application, some real  measurements
  537. are needed.
  538.  
  539. Start by closing all tasks except a single task that  is at the DOS prompt.
  540. There  is  a  batch file  named  TAMETUNE.BAT  that  comes  with  the  Tame
  541. distribution archive.   Run  this batch  file and  supply the  name of  the
  542. application as an argument.  This batch file will simply clear Tame totals,
  543. and  then  run  the application.    Run  the  batch  file,  and  bring  the
  544. application to  its normal  input state  as soon as  is possible.   Let  it
  545. remain idle for at least  ten seconds.  During this time, Tame  is counting
  546. actual keyboard  polls.   After waiting  ten seconds, exit  the program  as
  547. quickly as possible.  Tame  will display a total number of polls  per clock
  548. tick that occurred while you were in the application.   Since you know that
  549. you were idle  during most of that  time, this number represents  that rate
  550. which the application is capable of polling the keyboard.   A good value to
  551. specify for the frequency parameter is between ¼ to ½  of the measured poll
  552. rate.
  553.  
  554. The Tame Status
  555. The /Status  option  prints many  statistics  that Tame  accumulates  while
  556. running.  These  statistics are interesting  to see, and  they may also  be
  557. useful for  tuning Tame  and the  multi-tasker.   This is  a sample  status
  558. report.
  559.  
  560.    TAME release 2.30  (Non-Registered version)
  561.    Copyright 1988-1990 by PowerSoft and David G. Thomas
  562.  
  563.    Tame Totals - Running in DESQview Task #2
  564.  
  565.         Key Polls      = 21,575
  566.         Time polls     = 21,262
  567.         Task switches  = 10,658
  568.         NoBG requests  =  1,043
  569.  
  570.         Elapsed Time   =  4,172 seconds
  571.         (Active=7  Polling=29  Input=0  Yielded=4,137)
  572.  
  573.         Poll rate      =     10 polls per second
  574.                               1 polls per tick
  575.                              66 polls per running tick
  576.  
  577.    Options: /ON /NoBackGround:10 /NoTimer /TimePoll /KeyPoll /NoSerial
  578.             /NoParallel /NoSYMbols /NoKeyIdle /Freq:20,2
  579. Key Polls       The total number  of times the program  polled to see  if a
  580.                 key has been pressed.
  581.  
  582. Time Polls      The total number of times the program called DOS requesting
  583.                 the current date or time.
  584. Task Switches   The number of times that Tame has forced a task switch.
  585.  
  586.  
  587.  
  588.  
  589.  
  590. ---------------------------------------------------------------------------
  591. Release 2.3                     May 3, 1990                          Page 7
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. The Tame Status                                            Tame Users Guide
  599. ---------------------------------------------------------------------------
  600.  
  601. NoBG Requests   The number of times that Tame instructed  DESQview run this
  602.                 program only  when  it is  in the  foreground,  not in  the
  603.                 background.    This number  can  sometimes  get  very  high
  604.                 because Tame has no way to know if the program is currently
  605.                 in the foreground, and, if it is, DESQview  will ignore the
  606.                 request.
  607.  
  608. Elapsed Time    The total time  that Tame has been  running.  This  time is
  609.                 measured in seconds.  Tame does its best  to break the time
  610.                 down into  useful categories  which are shown  on the  next
  611.                 line.
  612. Active          The amount  of time the  task was  active doing real  work.
  613.                 Due to limitations in the measurement capabilities of Tame,
  614.                 this may also include some time that was  actually spent in
  615.                 other  tasks.    This  can  happen  when  the  multi-tasker
  616.                 switches tasks  before Tame sees  a need  to, which is  the
  617.                 normal case  when  the  task is  working  very hard.    The
  618.                 measurement will be fairly accurate except  times when this
  619.                 task is working hard and other tasks are  also working very
  620.                 hard at the same time.
  621.  
  622. Polling         The  amount  of  CPU  time  this  task  spent  polling  the
  623.                 keyboard.
  624. Input           The amount of time this task spent waiting for input.  This
  625.                 is different  than  polling because  the task  specifically
  626.                 requested to  not  receive control  until  a key  has  been
  627.                 pressed.  This is  the normal case when waiting at  the DOS
  628.                 prompt, unless  Tame or another  program is monitoring  the
  629.                 idle interrupt (INT 28h).
  630.  
  631. Yielded         The amount of  time that Tame  has yielded to other  tasks.
  632.                 It is a  measure of the  time difference between when  Tame
  633.                 switches  tasks, and  when  control  is returned  to  tame.
  634.                 Presumably, each  other task  has had a  time slice  during
  635.                 this time.
  636. Poll Rate       This  is   the  ratio  of   total  polls  (Key-polls   plus
  637.                 Time-polls) that has occurred per second, per  tick and per
  638.                 running tick.  A tick is a measure that  is internal to the
  639.                 PC, and there are 18.21 ticks per second.  The total number
  640.                 of running ticks is a sum of active time plus polling time,
  641.                 multiplied  by 18.21  ticks  per  second.   The  polls  per
  642.                 active-tick is  an indicator  as  to how  fast the  program
  643.                 normally polls.
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656. ---------------------------------------------------------------------------
  657. Page 8                          May 3, 1990                     Release 2.3
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664. Tame Command Reference                               Task switching options
  665. ---------------------------------------------------------------------------
  666.  
  667.                            Tame Command Reference
  668.  
  669. Task switching options
  670. The main purpose of Tame is to switch to another  task when it detects that
  671. the application  is  wasting time  polling the  keyboard.   With  DESQview,
  672. Omniview, Topview, VM/386 and Double Dos, the native pause function is used
  673. to switch  tasks.   Since Tame  does not  have specific  support for  other
  674. multi-taskers, you need  to set the task  switching method for  these other
  675. multi-taskers.  The following  options specify the method that  Tame should
  676. use in order to switch tasks.
  677.  
  678. ........
  679. /DESQVIEW       Use the native DESQview task switching method.
  680. ........
  681. /DOUBLEDOS      Use the native Double DOS task switching method.
  682.  
  683. ........
  684. /HaltSwitch     The /HaltSwitch option specifies that Tame should execute a
  685.                 HLT instruction when polling is detected.  This instruction
  686.                 has been found  to cause some multi-taskers  to immediately
  687.                 switch to another task.  This is the default task switching
  688.                 method when Tame does not recognize the multi-tasker.
  689. ........
  690. /KeySwitch      The /KeySwitch option specifies that when the program polls
  691.                 the keyboard, Tame should  tell a white lie and say  that a
  692.                 key has been  pressed.  Most applications  will immediately
  693.                 read the key that Tame claimed was already  pressed.  Since
  694.                 it really was  not pressed, DOS will  wait for a key  to be
  695.                 pressed.  Most multi-taskers use this wait for  a key press
  696.                 as a queue to switch tasks.
  697.  
  698.                 The /KeySwitch  option  could be  the  most effective  task
  699.                 switching method in  Tame, but it  will not work with  some
  700.                 applications.   Specifically,  it will  not  work with  any
  701.                 applications that poll devices other than  the keyboard, or
  702.                 with programs that occasionally flush  the keyboard buffer.
  703.                 It is also not effective in Windows/386.
  704. ........
  705. /OMNIVIEW       Use the native Omniview task switching method.
  706.  
  707. ........
  708. /TOPVIEW        Use the native Topview task switching method.
  709. ........
  710. /VM386          Use the native  VM/386 task switching method  which happens
  711.                 to be the same as /HaltSwitch.
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722. ---------------------------------------------------------------------------
  723. Release 2.3                     May 3, 1990                          Page 9
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. Fine tuning for an Application                       Tame Command Reference
  731. ---------------------------------------------------------------------------
  732.  
  733. Fine tuning for an Application
  734.  
  735. The default  Tame options  will  work well  with most  programs.   However,
  736. portions of some programs will run slower with Tame.   With other programs,
  737. Tame may not  reduce the CPU  overhead, even though  the program polls  the
  738. keyboard.  The  following options may be  specified in order to  adjust the
  739. effects of Tame on a specific application program.
  740. ........
  741. /INT15          This option  improves the effectiveness  of Tame with  some
  742.                 programs, but it does not work on all computer systems.  In
  743.                 fact, with some machines, it will lock up the system.
  744.  
  745.                 This option may be turned off by specifying /NoINT15.
  746. ........
  747. /NoBG:n         This option can be  very effective with DESQview,  and will
  748. /FGonly:n       be ignored if  another multi-tasking system is  being used.
  749.                 When this  option is  specified, Tame will  patiently do  a
  750.                 normal task switch  n times.   If no activity is  detected,
  751.                 then it  will  instruct DESQview  to  temporarily run  this
  752.                 program only  while it is  in the foreground.   As soon  as
  753.                 this  program  is brought  to  the  foreground,  Tame  will
  754.                 instruct DESQview  to  again allow  it  to execute  in  the
  755.                 background.
  756.  
  757.                 This  option  is extremely  effective  in  preventing  idle
  758.                 background processes  from slowing  performance of  working
  759.                 processes.  However, since its net effect  is to completely
  760.                 stop the  task (if  it is  in the background),  it is  very
  761.                 sensitive to how well the /Frequency or /Max parameters are
  762.                 tuned.  It also will not be effective with background tasks
  763.                 which may  remain idle  for a  period of  time, and  become
  764.                 active  based  on  external  events   (e.g.  communications
  765.                 program).
  766.                 This option may  be turned off  by specifying /NoFGonly  or
  767.                 /BackGround.
  768.  
  769. ........
  770. /Freq:n,m       This option may need to be used in order to fine-tune Tame.
  771.                 It sets n as  the number of consecutive keyboard  polls per
  772.                 clock tick that are acceptable before Tame decides that the
  773.                 program is doing no other work except polling the keyboard.
  774.                 This number defaults to 3.  If this number is too low, then
  775.                 Tame may switch tasks while the program  is really working.
  776.                 Specifying /Frequency with no parameters will allow Tame to
  777.                 compute a reasonable value  based on the speed of  the CPU.
  778.                 Since some application programs poll the keyboard at a high
  779.                 rate (even while they are working), so this option does not
  780.                 always provide advantages over /Max.
  781. ........
  782. /KeyIdle:n      This option works well with many programs that are gracious
  783.                 enough to  inform DOS  that it  is somewhat  idle while  it
  784.                 polls the keyboard.  When Tame detects this idle situation,
  785.                 it will temporarily lower the /Max  or /Frequency threshold
  786.  
  787.  
  788. ---------------------------------------------------------------------------
  789. Page 10                         May 3, 1990                     Release 2.3
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796. Tame Command Reference                       Fine tuning for an Application
  797. ---------------------------------------------------------------------------
  798.  
  799.                 to n.   This seems  to work  especially well with  programs
  800.                 that always inform  DOS when it  is idle, and the  standard
  801.                 threshold can be  set to -1,  telling Tame to never  switch
  802.                 tasks unless  the application  confirms that  it is  really
  803.                 idle.
  804.  
  805.                 Beginning with  DESQview release 2.26,  this option is  not
  806.                 recommended for tasks that  spend a lot of time at  the DOS
  807.                 prompt.   This is  because DESQview detects  the fact  that
  808.                 Tame is watching  the idle interrupt,  and when at the  DOS
  809.                 prompt, DESQview goes out of its way to  make sure the idle
  810.                 interrupt  is   called,   wasting  some   processing   time
  811.                 unnecessarily.  This option is still  very effective inside
  812.                 some programs,  and  the problem  only  occurs at  the  DOS
  813.                 prompt.
  814.                 This option may be turned off by specifying /NoKeyIdle.
  815.  
  816. ........
  817. /NoKeyPoll      This option instructs Tame  to not look at  keyboard polls.
  818.                 This  may  be useful  with  some  programs  that  poll  the
  819.                 keyboard whether they are working or not, but they poll the
  820.                 date or time only during keyboard input.   In this case, it
  821.                 may be best to switch tasks based on  the /TimePoll switch,
  822.                 and ignore all key polls.
  823.                 This option may be reversed with /KeyPoll.
  824.  
  825. ........
  826. /Max:n,m        This option may need to be used if the application seems to
  827.                 run  slower  with  Tame.   It  sets  n  as  the  number  of
  828.                 consecutive polls that  are acceptable before  Tame decides
  829.                 that the program is simply polling while waiting for input.
  830.                 If this number is too low, then Tame may switch tasks while
  831.                 the program  is really working.   If  you suspect that  the
  832.                 program (or a particular  aspect of the program)  is slower
  833.                 with Tame, raise this number.  Parameters as  high as a few
  834.                 thousand may  be  needed  in some  cases.   Note  that  the
  835.                 /Frequency parameter  may be  used  in place  of /Max,  and
  836.                 /Frequency is generally more effective.
  837.                 The second number may  optionally be specified in  order to
  838.                 change the number  of consecutive polls  that Tame uses  to
  839.                 switch  tasks after  it  has  already determined  that  the
  840.                 program is in a polling mode.
  841.  
  842.                 Either n or m  may be -1, which indicates that  Tame should
  843.                 not cause a task switch based upon polling alone.  This  is
  844.                 effective  with  programs  that  issue  the  keyboard  idle
  845.                 interrupt while  they are  polling the  keyboard, and  will
  846.                 prevent  Tame  from   switching  tasks  from   intermittent
  847.                 keyboard polls.
  848.                 In some cases, changing  /Max will have no  apparent effect
  849.                 when /KeyIdle  is also specified.   This  is the case  with
  850.                 most well-behaved  programs  that issue  the keyboard  idle
  851.                 interrupt.
  852.  
  853.  
  854. ---------------------------------------------------------------------------
  855. Release 2.3                     May 3, 1990                         Page 11
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862. Fine tuning for an Application                       Tame Command Reference
  863. ---------------------------------------------------------------------------
  864.  
  865. ........
  866. /NoTimer        This option  prevents the  application from processing  the
  867.                 timer interrupt  that is  normally  issued by  the PC  18.2
  868.                 times per second.  This option may disable some features of
  869.                 the program, and should  be used with caution.  It  is very
  870.                 useful with programs that  use a lot of CPU  processing the
  871.                 timer interrupt, and accomplish little.
  872.  
  873.                 This option works  by intercepting the programs  request to
  874.                 be called by the timer interrupt.    The program assumes it
  875.                 will be called on  a regular basis by the  timer interrupt,
  876.                 but, since Tame  did not pass this  request on to  DOS, the
  877.                 program will never be called by the interrupt.
  878.                 This option may be turned off by specifying /Timer.
  879.  
  880. ........
  881. /PARallel       This option  instructs Tame  to watch  BIOS level  parallel
  882.                 port accesses, and if the port is frequently being used, do
  883.                 not allow  a  task switch.   This  option  is not  normally
  884.                 needed except  with programs that  bypass DOS in  accessing
  885.                 the printer.   It  should be  used only when  it is  really
  886.                 needed.
  887. ........
  888. /SERial         This option instructs Tame to watch BIOS  level serial port
  889.                 accesses, and if the port is frequently being  used, do not
  890.                 allow a task  switch.  This  option is not normally  needed
  891.                 except with programs  that use the  serial port (e.g.  comm
  892.                 programs, bulletin boards, etc...).  It should be used only
  893.                 when it is really needed.
  894.  
  895. ........
  896. /TimePoll       This option instructs  Tame to consider  a request for  the
  897.                 current time to be similar to a keyboard  poll.  This works
  898.                 well  with programs  that  constantly update  an  on-screen
  899.                 clock.  This option  may have no effect when  /KeySwitch is
  900.                 specified.   It  is recommended  that  the second  /Max  or
  901.                 /Frequency  parameter  have  a  minimum  value  of  2  when
  902.                 /TimePoll is specified.
  903.                 This option may be turned off by specifying /NoTimePoll.
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920. ---------------------------------------------------------------------------
  921. Page 12                         May 3, 1990                     Release 2.3
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928. Tame Command Reference                                        Other options
  929. ---------------------------------------------------------------------------
  930.  
  931. Other options
  932.  
  933. ........
  934. /CLeaR          Zero the totals that Tame displays on the status report.
  935. ........
  936. /CLONE:file     This command  will make a  special version of  TAME-RES.COM
  937.                 that  has customized  default  parameters.   The  currently
  938.                 active defaults will be placed into the cloned program.  In
  939.                 all cases,  the /CLONE  option should be  the only  command
  940.                 line option that is  specified.  The cloned  program should
  941.                 be named TAME-xxx.COM where xxx is an  abbreviation for the
  942.                 application name.  The new TAME-xxx.COM may be run in place
  943.                 of the  TAME-RES.COM and  TAME.EXE duo  that is  frequently
  944.                 needed when starting up a new task.
  945.  
  946. ........
  947. /Geiger:p,t,f   This option starts up  a sound that is similar to  a Geiger
  948.                 counter.  This sound speeds up when the system is idle, and
  949.                 slows as other  tasks demand CPU resources.   It is  a very
  950.                 useful tool for monitoring the effectiveness of Tame, since
  951.                 it  allows  you to  monitor  the  amount  of  CPU  that  an
  952.                 application will use with and without Tame.
  953.                 There are three optional parameters that  may be specified.
  954.                 The p  parameter  sets amount  of time  of  the pause  that
  955.                 occurs between Geiger ticks.  The default value is based on
  956.                 the speed of the CPU.   The t parameter sets the  amount of
  957.                 time each tick takes.  The default is 1.  When t is zero, a
  958.                 faint tick may  still be heard.   The f parameter  sets the
  959.                 frequency of the ticks, in Hertz.
  960.  
  961. ........
  962. /GETALL:var     Get the  current Tame  parameters, and place  them into  an
  963.                 environment variable named var.    This option  is designed
  964.                 for use  in a  batch  file, in  order to  restore the  Tame
  965.                 parameters after running a program.
  966.                 This option has been tested with DOS versions  3.1 and 3.3,
  967.                 but it will not work with DOS 3.2.  I  hope to correct this
  968.                 problem with  a  future  release.   If  you are  running  a
  969.                 multi-tasker with DOS 2.0, I strongly recommend you upgrade
  970.                 to DOS  3.x so you  can take  advantage of the  protections
  971.                 provided with the SHARE command.
  972.  
  973. ........
  974. /OFF            Temporarily disable Tame, but leave it in  memory for later
  975.                 use.
  976. ........
  977. /ON             Enable Tame task switching.  Tame is on by default.
  978.  
  979. ........
  980. /Status         Display a summary report.  The summary  includes the number
  981.                 of task  switches that  were initiated by  Tame, the  total
  982.                 number of  keyboard calls  that the  application made,  and
  983.                 also a summary of the current options.
  984.  
  985.  
  986. ---------------------------------------------------------------------------
  987. Release 2.3                     May 3, 1990                         Page 13
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994. Other options                                        Tame Command Reference
  995. ---------------------------------------------------------------------------
  996.  
  997. ........
  998. /Uninstall      Remove the resident portion of Tame from memory.
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052. ---------------------------------------------------------------------------
  1053. Page 14                         May 3, 1990                     Release 2.3
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. Multi-tasking Specifics                                            DESQview
  1061. ---------------------------------------------------------------------------
  1062.  
  1063.                           Multi-tasking Specifics
  1064.  
  1065. DESQview
  1066. Tame will automatically detect  the presence of DESQview, and will  use its
  1067. native task switching method.   Tame has been tested with DESQview versions
  1068. 2.01 through 2.26, and appears to work well with all versions.
  1069.  
  1070. If you set the /Frequency parameter correctly, the  /NoBackGround option is
  1071. strongly recommended with most application programs.  It  will prevent idle
  1072. background programs from affecting performance.
  1073. Tame is most effective with DESQview when QEMM and DESQview are combined on
  1074. an 80386 based PC.  Tame  will also be effective on a machine  with an 8088
  1075. or 80286 and  should be used  with many programs  that do not have  special
  1076. DESQview loaders.
  1077.  
  1078. Double Dos
  1079.  
  1080. Tame will automatically detect the presence of Double Dos, and will use its
  1081. native task switching method.
  1082.  
  1083. Omniview
  1084. Tame cannot  tell  the difference  between DESQview  and  Omniview.   After
  1085. loading TAME-RES, run TAME with the /OMNIVIEW option.
  1086.  
  1087. Topview
  1088.  
  1089. After loading TAME-RES, run TAME with the /TOPVIEW option.
  1090.  
  1091. VM/386
  1092. Tame does  not specifically  detect VM/386.   After  loading TAME-RES,  you
  1093. should run TAME with the /VM386 option.
  1094.  
  1095. Windows/386
  1096.  
  1097. Tame does not  specifically detect Windows/386,  but it does  automatically
  1098. use the  /HaltSwitch option when  an unidentified  multi-tasker is in  use.
  1099. This option works reasonably well.
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118. ---------------------------------------------------------------------------
  1119. Release 2.3                     May 3, 1990                         Page 15
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126. Application Specifics                                 Application Specifics
  1127. ---------------------------------------------------------------------------
  1128.  
  1129.                            Application Specifics
  1130.  
  1131. Most applications  may be  run with  Tame without  any special  parameters.
  1132. However, for best results, certain command line parameters may be desirable
  1133. for some  applications.  The  following table  represents the benefits  and
  1134. effects of recommended  command line parameters  for each program when  run
  1135. under DESQview.   In most cases, tuning  Tame so that /NoBackGround  may be
  1136. used is strongly recommended.  Results may vary with other multi-taskers.
  1137.  Application    Recommended options Results &
  1138.  Program                            Side effects
  1139.  Brief          (use defaults)       About 75% of the CPU overhead is
  1140.                                       eliminated.
  1141.  Brief          /NoTimer /KeyIdle    Nearly all the CPU overhead is
  1142.                                       eliminated.
  1143.                                      On screen clock and auto-save
  1144.                                       feature are disabled.
  1145.  Info Select    /NoKeyPoll           Nearly all the CPU overhead is
  1146.                 /TimePoll             eliminated
  1147.  Kedit          (use defaults)       Nearly all of the CPU overhead is
  1148.                                       eliminated.
  1149.  Lotus 123      (use defaults)       Nearly all the CPU overhead is
  1150.                                       eliminated.
  1151.  Lotus Agenda   (use defaults)       Nearly all the CPU overhead is
  1152.                                       eliminated.
  1153.  Lotus          /NoTimer /Max:-1     Nearly all the CPU overhead is
  1154.  Manuscript     /KeyIdle              eliminated.
  1155.  Lucid 3D       (use defaults)       Nearly all the CPU overhead is
  1156.                                       eliminated.
  1157.  Microsoft      (use defaults)       Nearly all the CPU overhead is
  1158.  Editor                               eliminated.
  1159.  Norton         (use defaults)       Nearly all the CPU overhead is
  1160.  Commander                            eliminated.
  1161.                                      Tame will also cover programs that
  1162.                                       are run by the shell.
  1163.  PCBOARD        /TimePoll            About 75% of the CPU overhead is
  1164.                                       eliminated.
  1165.  Quick C        /NoTimer             Nearly all of the CPU overhead is
  1166.                                       eliminated.
  1167.                                      Side effects (if any) of /NoTimer
  1168.                                       have not been determined.
  1169.  Sidetalk       (use defaults)       About 75% of the CPU overhead is
  1170.                                       eliminated.
  1171.  Tornado Notes  /NoKeyPoll           Nearly all the CPU overhead is
  1172.                 /TimePoll             eliminated
  1173.  Word Perfect   /Parallel            About 75% of the CPU overhead is
  1174.                                       eliminated.
  1175.  ZCOMM          /Serial              About 75% of the CPU overhead is
  1176.                                       eliminated.
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184. ---------------------------------------------------------------------------
  1185. Page 16                         May 3, 1990                     Release 2.3
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192. Tame Upgrades                                                 Tame Upgrades
  1193. ---------------------------------------------------------------------------
  1194.  
  1195.                                Tame Upgrades
  1196.  
  1197. The latest  release of Tame  will be continuously  posted on the  PowerSoft
  1198. bulletin board system at  (404) 928-9294.  Also, since Tame  is distributed
  1199. as a shareware program, the latest release will normally  be available on a
  1200. local bulletin board.
  1201. If you are a  registered user, you have  paid for a perpetual  license, and
  1202. may register  each new  version of  Tame using  a utility  program that  is
  1203. provided with your  registration kit.  This  utility may be  run completely
  1204. from the  command  line.   For  example, the  following  command line  will
  1205. register Fred Smith if the password of ABCD is correct.
  1206.  
  1207.    TAME-REG "Fred Smith" ABCD
  1208. If you prefer, the  registration program may be run without  specifying any
  1209. arguments, and you will be prompted for the information.
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250. ---------------------------------------------------------------------------
  1251. Release 2.3                     May 3, 1990                         Page 17
  1252.  
  1253.  
  1254.  
  1255.